package com.techsen.tsweb.sys.service;

import java.util.List;
import java.util.Map;

import com.techsen.tsweb.sys.security.Resource;

public interface ResourceService {

    /**
     * 根据资源类型，资源组，资源标识获取资源
     * @param type 资源类型
     * @param group 资源组
     * @param sn 资源标识
     */
    Resource getResourceByTypeAndGroupAndSn(String type, String group, String sn);
    
    /**
     * 查找所有资源
     */
    List<Resource> findAll();
    
    /**
     * 根据用户ID获取根据用户授权给该用户的资源ID集合
     */
    Map<String, List<String>> getResourceIdsByUserId(String userId);
    
    /**
     * 根据角色ID获取根据角色授权给该用户的资源ID集合
     */
    Map<String, List<String>> getResourceIdsByRoleId(String roleId);
    
    /**
     * 根据用户ID获取授权给这个用户的所有资源ID集合<br/>
     * 1. 按用户授权<br/>
     * 2. 按角色授权<br/>
     */
    Map<String, List<String>> getAuthorizedResourceIdsByUserId(String userId);
    
}
